package Collection;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Random;

public class StreamDemo2 {
    public static void main(String[] args) {
        Random rand = new Random();
        List<Integer> list = new ArrayList<>();
        for (int i =0;i<3;i++){
            list.add(rand.nextInt(100));
        }
        System.out.println(list);
        /*
            min:获取集合当中的最小值
            max:获取集合当中的最大值
            anyMatch:判断当前集合中的元素是否有满足的
            allMatch:判断当前集合中的元素是否都满足
            noneMatch:判断当前集合中的元素是否都不满足

            Optional有点类似于包装类,每个示例内部保存一个java中的对象
         */
//        Optional<Integer> o = list.stream().min(((o1, o2) -> o1-o2));
//        Integer min = o.get();

        //获取最小值
        int min = list.stream().min(((o1, o2) -> o1-o2)).get();
        System.out.println(min);

        //获取最大值
        int max = list.stream().max(((o1, o2) -> o1-o2)).get();
        System.out.println(max);

        //list集合中是否包含偶数
        boolean anyMatch = list.stream().anyMatch(e->e%2==0);
        System.out.println(anyMatch?"有偶数":"没有偶数");

        //查看list集合是否所有元素都大于5
        boolean allMatch = list.stream().allMatch(e->e>5);
        System.out.println(allMatch?"都>5":"不都>5");

        //集合是否所有元素都是奇数
        boolean noneMatch = list.stream().noneMatch(e->e%2==0);
        System.out.println(noneMatch?"都是奇数":"不都是偶数");

        //求元素的集合
        int sum = list.stream().reduce(((e1, e2) -> e1+e2 )).get();
        System.out.println("求和:"+sum);
    }
}
